package com.bitin.adorn.modules.user.service;

import com.bitin.adorn.common.payload.Pagination;
import com.bitin.adorn.modules.user.domain.User;
import com.bitin.adorn.modules.user.request.PagingRequest;
import com.bitin.adorn.modules.user.response.UserAuthInfo;

import java.util.List;

/**
 * 用户业务接口
 *
 * @author Mr.Lu
 * @since 2024/12/11 17:23
 */
public interface UserService {

    List<User> findAll();

    Pagination<User> page(PagingRequest request);

    User save(User user);

    /**
     * 根据用户名获取认证信息
     *
     * @param username 用户名
     * @return {@link UserAuthInfo}
     */
    UserAuthInfo findUserAuthInfo(String username);

    /**
     * 根据 openid 获取用户认证信息
     *
     * @param openid 用户名
     * @return {@link UserAuthInfo}
     */

    UserAuthInfo findUserAuthInfoByOpenid(String openid);

    /**
     * 根据微信 OpenID 注册或绑定用户
     *
     * @param openId 微信 OpenID
     */
    void registerWechatUser(String openId);


}
